Verão IME-USP
“Felix, qui potuit rerum cognoscere causas” (Virgil, 29 a.C)
(Feliz é aquele que pode conhecer as causas das coisas)
Você já deve ter ouvido falar que correlação não implica causalidade, mas o que isso realmente significa?
A causalidade é o conceito que busca entender como uma variável (\(X\)) pode influenciar outra (\(Y\)).
Ou, em termos simples, gostaríamos de saber: qual é o efeito de \(X\) sobre \(Y\)?
Mas como podemos medir ou estimar esse efeito de maneira precisa?
É aí que a Inferência Causal entra em cena, fornecendo ferramentas para responder a essas questões!
Vamos considerar um exemplo: queremos entender o impacto do ato de fumar \((X)\) no desenvolvimento de câncer de pulmão \((Y)\).
Podemos representar isso com um grafo causal, onde a seta indica a relação de causa e efeito entre as variáveis.
O efeito causal médio ou average causal effect (ACE) de \(X\) em \(Y\) é dado por
\[ \text{ACE}_{X,Y} = \mathbb{E}[Y \mid \text{do}(X=1)] - \mathbb{E}[Y \mid \text{do}(X=0)] \]
onde \(\mathbb{E}[Y \mid \text{do}(X=x)]\) é o valor médio de \(Y\) quando \(X\) é definido como \(x\) por meio de uma intervenção.
O operador \(do\) significa que estamos lidando com uma intervenção em vez de uma observação passiva.
Uma das formas de calcular \(\mathbb{E}[Y \mid \text{do}(X=x)]\) é através do Critério Front-door (também conhecido como Front-door Criterion).
Voltando ao nosso exemplo do fumo \((X)\) e do câncer de pulmão \((Y)\), imagine que existe um gene não mensurável \((Z)\) que influencia tanto o fumo quanto o câncer. Isso pode criar uma confusão no cálculo do efeito causal direto de \(X\) sobre \(Y\).
Contudo, se conseguirmos medir variáveis mediadoras, como o depósito de alcatrão \((W)\) nos pulmões, podemos usar essas informações para isolar o efeito causal de \(X\) em \(Y\).
Desse modo, pelo critério front-door, o efeito causal de \(X\) em \(Y\) pode ser medido da seguinte forma:
\[ \begin{aligned} \mathbb{E}[Y \mid \text{do}(X = x)] &= \mathbb{E} \left[Y \cdot \frac{f(W \mid x)}{f(W \mid X)} \right] \\ &= \mathbb{E} \left[ Y \cdot \frac{ f(x \mid W)f(X)}{f(X \mid W)f(x)} \right] \end{aligned} \]
Note que,
\[ \begin{aligned} O_1(x', x,w) := \frac{f(x \mid w)}{f(x' \mid w)} &= \begin{cases} 1 & \text{, se } x' = x, \\ \frac{\mathbb{P}(X=x|w)}{1-\mathbb{P}(X=x|w)} & \text{, c.c.} \end{cases} \end{aligned} \]
E também,
\[ \begin{aligned} O_2(x', x) := \frac{f(x')}{f(x)} &= \begin{cases} 1 & \text{, se } x' = x, \\ \frac{1- \mathbb{P}(X=x)}{\mathbb{P}(X=x)} & \text{, c.c.} \end{cases} \end{aligned} \]
Assim, podemos escrever
\[ \mathbb{E}[Y \mid \text{do}(X = x)] = \mathbb{E}\left[ Y \cdot O_1(X,x,W) \cdot O_2(X,x) \right] \]
O nosso estimador será
\[ \begin{aligned} \widehat{\mathbb{E}}_o[Y \mid \text{do}(X = x)] := & \left( \sum_{i=1}^{n} \widehat{O}(X_i, x, W_i) \right)^{-1} \\ & \times \sum_{i=1}^{n} Y_i \cdot \widehat{O}(X_i, x, W_i) \end{aligned} \]
Vamos usar o torch para estimar a chance (odds) condicional \(O_1(x', x,w)\) !!
Para isso, usaremos a perda nn_bce_with_logits_loss() !!
No mesmo cenário, com tamanhos amostrais de 100, 500 e 1.000, repetindo cada simulação 100 vezes, obtemos o seguinte gráfico de erros quadráticos.
Resultados obtidos em um outro cenário, onde adicionamos não-linearidade a variável \(Y\).
O torch é uma ferramente versátil que pode ser empregada em diversas situações!
Em específico, vimos uma aplicação em inferência causal!
Ao aplicarmos o torch para calcular o efeito causal médio de \(X\) em \(Y\), exploramos novas possibilidades para análise de dados de forma não-paramétrica!
O torch é só o início de um mundo cheio de possibilidades!
Pearl, J. (2000). Causality: Models, Reasoning, and Inference. Cambridge University Press.
Pearl, J., Glymour, M., & Jewell, N. P. (2016). Causal Inference in Statistics: A Primer. Wiley.
Pearl, J., & Mackenzie, D. (2018). The Book of Why: The New Science of Cause and Effect. Penguin Books.
2025